class Http {

    constructor() { }



    /**
     * get 请求
     * @param {*} params  {url:"",params:{},callback:function,contentType:}
     * @returns 
     */
    get(params) {
        return this.ajax("get", params.contentType, params.url, params.params, params.callback);
    }

    post(params) {
        return this.ajax("post", params.contentType, params.url, params.params, params.callback);
    }

    ajax(method, contentType = "application/json;charset=UTF-8", url, parmas, callback) {
        //创建ajax引擎对象
        let xhr = new XMLHttpRequest();
        //处理参数,定义一个空数组
        let arr = [];
        //遍历对象，拼接到数组中
        for (const key in parmas) {
            if (Object.hasOwnProperty.call(parmas, key)) {
                arr.push(key + "=" + parmas[key]);
            }
        }
        parmas = arr.join("&");


        // 判定
        if (method == "get") {
            //配置请求方式和请求地址
            xhr.open(method, url.indexOf("?") != -1 ? url + "&" + parmas : url + "?" + parmas);
            xhr.setRequestHeader('Content-Type', contentType);//'application/x-www-form-urlencoded'

            // 发送请求
            xhr.send();
        } else if (method == "post") {
            //配置请求方式和请求地址
            xhr.open(method, url);
            //请求头
            xhr.setRequestHeader('Content-Type', contentType);//'application/x-www-form-urlencoded'

            // 发送请求
            xhr.send(parmas);
        }

        // 监听状态变化和接收数据
        xhr.onreadystatechange = function () {
            console.log("xhr.responseText", xhr.responseText);
            if (xhr.readyState == 4 && xhr.status == 200) {
                // 处理数据
                callback(JSON.parse(xhr.responseText));
            }
        }

    }


}

export default new Http();